<html>
<head><meta charset="utf-8"><title>x.py check fails incremental due to unused attr #58633 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html">x.py check fails incremental due to unused attr #58633</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="183270355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270355">(Dec 12 2019 at 15:36)</a>:</h4>
<p>so this is an old issue that I plugged some time ago</p>



<a name="183270379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270379">(Dec 12 2019 at 15:36)</a>:</h4>
<p>but its rearing its head again</p>



<a name="183270435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270435">(Dec 12 2019 at 15:37)</a>:</h4>
<p>I think things have gotten hectic since we've started not removing incremental caches all the time (cc <span class="user-mention" data-user-id="116122">@simulacrum</span>)</p>



<a name="183270458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270458">(Dec 12 2019 at 15:37)</a>:</h4>
<p>when it works, it's great, when it doesn't, <code>rm -r</code></p>



<a name="183270556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270556">(Dec 12 2019 at 15:38)</a>:</h4>
<p>but here one runs into it during every attempt to develop on a certain part of libcore ?</p>



<a name="183270560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270560">(Dec 12 2019 at 15:38)</a>:</h4>
<p>this is true, we're now essentially never cleaning out your target directories</p>



<a name="183270611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270611">(Dec 12 2019 at 15:38)</a>:</h4>
<p>(previously a change in e.g. libstd would cause all of the librustc_* incremental caches to be destroyed, even if they were likely still mostly usable, and fixing that is why we changed anything here)</p>



<a name="183270683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270683">(Dec 12 2019 at 15:39)</a>:</h4>
<p>so maybe I misunderstand</p>



<a name="183270686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270686">(Dec 12 2019 at 15:39)</a>:</h4>
<p>huh, wait, what are we doing here?</p>



<a name="183270699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270699">(Dec 12 2019 at 15:39)</a>:</h4>
<p>we're just re-using the old incremental data even though the compiler has changed in the interim?</p>



<a name="183270739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270739">(Dec 12 2019 at 15:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> presumably rustc itself can detect that situation?</p>



<a name="183270757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270757">(Dec 12 2019 at 15:39)</a>:</h4>
<p>it certainly can't :)</p>



<a name="183270815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270815">(Dec 12 2019 at 15:40)</a>:</h4>
<p>getting some strong deja-vu about this</p>



<a name="183270830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270830">(Dec 12 2019 at 15:40)</a>:</h4>
<p>I mean if it could</p>



<a name="183270833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270833">(Dec 12 2019 at 15:40)</a>:</h4>
<p>It can usually, but not during bootstrapping</p>



<a name="183270849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270849">(Dec 12 2019 at 15:40)</a>:</h4>
<p>it'd be no different than us doing <code>rm -rf</code></p>



<a name="183270854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270854">(Dec 12 2019 at 15:40)</a>:</h4>
<p>because it relies on git commit hashes</p>



<a name="183270856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270856">(Dec 12 2019 at 15:40)</a>:</h4>
<p>(right?)</p>



<a name="183270874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270874">(Dec 12 2019 at 15:40)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> but isn't the problem  that beta changed?</p>



<a name="183270901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270901">(Dec 12 2019 at 15:41)</a>:</h4>
<p><code>stage1</code> doesn't use incremental AFAIK, so a locally built compiler isn't a concern</p>



<a name="183270911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270911">(Dec 12 2019 at 15:41)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> hm, that should be detected, I guess</p>



<a name="183270916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183270916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183270916">(Dec 12 2019 at 15:41)</a>:</h4>
<p>and <code>./x.py check</code> doesn't run a locally built compiler anyway</p>



<a name="183271036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271036">(Dec 12 2019 at 15:42)</a>:</h4>
<p>this might be a differently problem then</p>



<a name="183271078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271078">(Dec 12 2019 at 15:42)</a>:</h4>
<p>hmm based on <a href="https://github.com/rust-lang/rust/issues/58633#issuecomment-562738568" target="_blank" title="https://github.com/rust-lang/rust/issues/58633#issuecomment-562738568">https://github.com/rust-lang/rust/issues/58633#issuecomment-562738568</a> it might be a problem with reusing caches for different compilation modes</p>



<a name="183271119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271119">(Dec 12 2019 at 15:43)</a>:</h4>
<p>do we still fill the "used attributes" map as a side-effect of certain queries?</p>



<a name="183271123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271123">(Dec 12 2019 at 15:43)</a>:</h4>
<p>but I get something similar when beta changes (... or so I thought?), i.e. spurious attribute-related errors, and I have to nuke stage0-std. and I don't ever use <code>./x.py check</code></p>



<a name="183271240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271240">(Dec 12 2019 at 15:44)</a>:</h4>
<p>if the <code>[tracked]</code> and <code>[untracked]</code> annoations for commandline args are correct, different modes should not be a problem</p>



<a name="183271335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271335">(Dec 12 2019 at 15:45)</a>:</h4>
<p>but if used-attributes detection relies on certain queries to run, but incremental skips those queries...</p>



<a name="183271407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271407">(Dec 12 2019 at 15:45)</a>:</h4>
<p>hmm. is that a sign that the used-attribute architecture needs to change?</p>



<a name="183271427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271427">(Dec 12 2019 at 15:45)</a>:</h4>
<p>maybe my issue isn't beta changing but libstd changing in a way that breaks that incremental-unfriendly attribute tracking</p>



<a name="183271431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271431">(Dec 12 2019 at 15:46)</a>:</h4>
<p>if it relies on side-effects: yes</p>



<a name="183271505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271505">(Dec 12 2019 at 15:46)</a>:</h4>
<p>lets maybe spawn this converation off a parallel topic?</p>



<a name="183271506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271506">(Dec 12 2019 at 15:46)</a>:</h4>
<p>at least it would need special handling in that case (like diagnostics)</p>



<a name="183271523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183271523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183271523">(Dec 12 2019 at 15:46)</a>:</h4>
<p>for longer term discussion</p>



<a name="183811849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183811849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183811849">(Dec 19 2019 at 03:02)</a>:</h4>
<blockquote>
<p>but if used-attributes detection relies on certain queries to run, but incremental skips those queries...</p>
</blockquote>



<a name="183811867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183811867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183811867">(Dec 19 2019 at 03:03)</a>:</h4>
<p>its looking more and more to me like the architecture for the unused_attributes lint needs to change</p>



<a name="183811917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183811917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183811917">(Dec 19 2019 at 03:04)</a>:</h4>
<p>we track the set in a field <a href="https://github.com/rust-lang/rust/blob/master/src/libsyntax/lib.rs#L42" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/libsyntax/lib.rs#L42">here</a> of a <code>Globals</code> struct that is kept in TLS <a href="https://github.com/rust-lang/rust/blob/c605199e89572e586a5f37bc698c48b6a10896fb/src/libsyntax/lib.rs#L74" target="_blank" title="https://github.com/rust-lang/rust/blob/c605199e89572e586a5f37bc698c48b6a10896fb/src/libsyntax/lib.rs#L74">here</a>. And then each time we need to add to the database or query it, we do a <a href="https://github.com/rust-lang/rust/blob/master/src/libsyntax/attr/mod.rs#L32" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/libsyntax/attr/mod.rs#L32">TLS access</a></p>



<a name="183812015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812015">(Dec 19 2019 at 03:06)</a>:</h4>
<p>the data there is not per-cgu though, so we cannot readily save and reload the relevant portion as part of incremental compilation.</p>



<a name="183812033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812033">(Dec 19 2019 at 03:07)</a>:</h4>
<p>One thing I'm not clear on is why <em>any</em> <code>rustc_attribute</code> is being flagged as <code>Normal</code> rather than <code>Whitelisted</code></p>



<a name="183812116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812116">(Dec 19 2019 at 03:09)</a>:</h4>
<p>it is perhaps worth noting that the mark_used/mark_known attribute piece is something that might be "relatively" easy to remove based on past investigations, replacing by instead storing that information inline inside the Attribute (perhaps in an Arc, but I'm not sure even that is necessary -- I <em>think</em> we basically don't clone Attributes today). We'd need to walk the AST to detect unused attributes, but I think that's not too hard.</p>
<p>I think the ideal might be to move everything past AST construction that looks at attributes to a query that we'd be able to check for being executed (e.g., has "attribute(AttrId)" run? if so, it's been used). This is a pretty invasive change though</p>



<a name="183812169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812169">(Dec 19 2019 at 03:10)</a>:</h4>
<blockquote>
<p>One thing I'm not clear on is why <em>any</em> <code>rustc_attribute</code> is being flagged as <code>Normal</code> rather than <code>Whitelisted</code></p>
</blockquote>
<p>I don't think this matters ultimately, though it may point at an immediate fix. But my impression that the problem here is one that we could see in <em>any</em> Rust project, not just libstd/libcore, it's not a matter of rustc attributes or other types of attributes.</p>



<a name="183812188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812188">(Dec 19 2019 at 03:11)</a>:</h4>
<blockquote>
<p>my impression that the problem here is one that we could see in any Rust project</p>
</blockquote>
<p>I thought that too, but I have had difficulty constructing a case that <em>didn't</em> use some kind of <code>rustc_attribute</code>.</p>



<a name="183812191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812191">(Dec 19 2019 at 03:11)</a>:</h4>
<p>(And IIRC, Normal just means that we might emit unused errors, which seems correct for any attribute, right? Regardless of it being rustc-specific?)</p>



<a name="183812232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812232">(Dec 19 2019 at 03:12)</a>:</h4>
<p>I'll look into the <code>allow_internal_unstable</code> example provided on <a href="https://github.com/rust-lang/rust/issues/64764" target="_blank" title="https://github.com/rust-lang/rust/issues/64764">#64764</a> though</p>



<a name="183812238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812238">(Dec 19 2019 at 03:12)</a>:</h4>
<p>I think it might be that we are far more eager about using non-rustc-specific attributes, i.e., we're almost guaranteed to mark them as used regardless of which queries run</p>



<a name="183812243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812243">(Dec 19 2019 at 03:12)</a>:</h4>
<p>this is very much not true of at least some rustc attributes though I imagine (since they're only visited by e.g. typeck or so)</p>



<a name="183812246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812246">(Dec 19 2019 at 03:13)</a>:</h4>
<blockquote>
<p>(And IIRC, Normal just means that we might emit unused errors, which seems correct for any attribute, right? Regardless of it being rustc-specific?)</p>
</blockquote>
<p>Right; but it seems less risky to <del>omit</del> fail to emit unused errors for <code>rustc_attributes</code> given the fragility of the architecture, at least for these cases.</p>



<a name="183812311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812311">(Dec 19 2019 at 03:14)</a>:</h4>
<blockquote>
<p>I think it might be that we are far more eager about using non-rustc-specific attributes, i.e., we're almost guaranteed to mark them as used regardless of which queries run</p>
</blockquote>
<p>yes this matches my own running hypothesis about my failure to replicate</p>



<a name="183812561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812561">(Dec 19 2019 at 03:20)</a>:</h4>
<p>Sure -- I agree that we might be able to patch over the problem by whitelisting rustc-specific attrs for now</p>



<a name="183812635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812635">(Dec 19 2019 at 03:22)</a>:</h4>
<p>but then at that point, is that buying us anything vs the approach taken in <a href="https://github.com/rust-lang/rust/issues/67101" target="_blank" title="https://github.com/rust-lang/rust/issues/67101">#67101</a> of just doing <code>#[allow(unused_attributes)]</code> at the relevant module(s) ?</p>



<a name="183812664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812664">(Dec 19 2019 at 03:23)</a>:</h4>
<p>(it would buy us something if we were aware of <em>non</em>-<code>rustc_attribute</code> cases that <code>unused_attributes</code> readily catches. I guess custom attributes were the original impetus...)</p>



<a name="183812723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812723">(Dec 19 2019 at 03:24)</a>:</h4>
<p>I think no.</p>



<a name="183812731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812731">(Dec 19 2019 at 03:24)</a>:</h4>
<p>I would personally not be entirely against just giving up on unused attributes <em>entirely</em> for now</p>



<a name="183812746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812746">(Dec 19 2019 at 03:25)</a>:</h4>
<p>Since it seems like in almost all cases if we're not using it we don't really want that to be a lint</p>



<a name="183812757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183812757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183812757">(Dec 19 2019 at 03:25)</a>:</h4>
<p>i.e., it's either a future compat hazard if we do start using it or is just a questionable choice to accept it</p>



<a name="183813745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183813745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183813745">(Dec 19 2019 at 03:49)</a>:</h4>
<p>okay, yeah, I reviewed the history a bit in <a href="https://github.com/rust-lang/rfcs/pull/572" target="_blank" title="https://github.com/rust-lang/rfcs/pull/572">RFC 572</a>.  I think we have reached the point where the <code>unused_attribute</code> lint is indeed not buying us anything at all.</p>



<a name="183813789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183813789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183813789">(Dec 19 2019 at 03:50)</a>:</h4>
<p>and therefore I too would be okay with the idea of just throwing out that functionality.</p>



<a name="183814077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183814077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183814077">(Dec 19 2019 at 03:59)</a>:</h4>
<p>though I should double-check behavior on syntax extensions that leverage secondary attributes as a way to signal info from within the input syntax to the macro</p>



<a name="183818243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183818243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183818243">(Dec 19 2019 at 05:37)</a>:</h4>
<p>I'd like to just explicitly list which attributes are allowed and where.</p>



<a name="183843141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/183843141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#183843141">(Dec 19 2019 at 13:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> I think that essentially mirrors what I said? Unless I'm misunderstanding -- though we could also <em>not</em> do that yet, but still delete the unused attributes lint.</p>



<a name="193052946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193052946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193052946">(Apr 06 2020 at 14:49)</a>:</h4>
<p>is this an actual topic ...</p>



<a name="193053046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053046">(Apr 06 2020 at 14:50)</a>:</h4>
<p>okay yes it is</p>



<a name="193053119"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053119" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053119">(Apr 06 2020 at 14:50)</a>:</h4>
<p>(but its better after an alpha rename. <span aria-label="smiley" class="emoji emoji-1f603" role="img" title="smiley">:smiley:</span> )</p>



<a name="193053265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053265">(Apr 06 2020 at 14:51)</a>:</h4>
<p>I'm just revisiting <a href="https://github.com/rust-lang/rust/issues/58633" title="https://github.com/rust-lang/rust/issues/58633">#58633</a> after seeing <span class="user-mention" data-user-id="119009">@eddyb</span> 's <a href="https://github.com/rust-lang/rust/issues/58633#issuecomment-609471084" title="https://github.com/rust-lang/rust/issues/58633#issuecomment-609471084">comment from last night</a>:</p>
<blockquote>
<p>Should we just demote <code>unused_attributes</code> to warn-only at stage0?</p>
<p>It's getting pretty boring to nuke <code>stage0-std</code> every time I rebase and something has changed in libstd (looks even more frequent nowadays), and I've heard people say they don't set <code>incremental = true</code> in <code>cargo.toml</code> because of these "unused attribute" errors, which is a shame.</p>
</blockquote>



<a name="193053540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053540">(Apr 06 2020 at 14:53)</a>:</h4>
<p>The only reason I can think of to <em>not</em> do what eddyb suggests (namely demoting <code>unused_attributes</code> to warn-only at stage0) is the question of whether we should be doing something more invasive to fix the problem. And the only reason to do something more invasive would be if we expect users <em>outside</em> of rustbuild to be running into this</p>



<a name="193053645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053645">(Apr 06 2020 at 14:54)</a>:</h4>
<p>but even then, we can <em>wait</em> until someone actually complains</p>



<a name="193053694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053694">(Apr 06 2020 at 14:54)</a>:</h4>
<p>we should do something more invasive but the UX is getting worse</p>



<a name="193053738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053738">(Apr 06 2020 at 14:54)</a>:</h4>
<p>warn-only would be temporary (famous last words) until we know the problem is fixed</p>



<a name="193053746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053746">(Apr 06 2020 at 14:54)</a>:</h4>
<p>that is, the only drawback to doing what eddyb suggests is that it would demotivate the more invasive fix, but the <strong>wins</strong> from doing what eddyb suggests are so significant</p>



<a name="193053754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053754">(Apr 06 2020 at 14:54)</a>:</h4>
<p>that we would be foolish to not do it</p>



<a name="193053826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053826">(Apr 06 2020 at 14:55)</a>:</h4>
<p>and it's also probably trivial, depending how lint overriding works it could be exactly one line in one crate</p>



<a name="193053867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053867">(Apr 06 2020 at 14:55)</a>:</h4>
<p>or a few lines in <code>src/bootstrap/bin/rustc.rs</code></p>



<a name="193053905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193053905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193053905">(Apr 06 2020 at 14:56)</a>:</h4>
<p>whereas fixing the incremental side of this... seems hard</p>



<a name="193054004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193054004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193054004">(Apr 06 2020 at 14:56)</a>:</h4>
<p>(and if we have to do it on a case-by-case basis, it has to be fixed in <em>beta</em>, because that's the only compiler used incrementally when building Rust)</p>



<a name="193054596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193054596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193054596">(Apr 06 2020 at 15:00)</a>:</h4>
<p>what do you mean by "case by case" basis?</p>



<a name="193054843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193054843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193054843">(Apr 06 2020 at 15:02)</a>:</h4>
<p>some of the comments on the issue looked like they were talking about changing the definition of the attribute to <code>Whitelisted</code> or something like that</p>



<a name="193057031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193057031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193057031">(Apr 06 2020 at 15:17)</a>:</h4>
<p>ah okay</p>



<a name="193170675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193170675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193170675">(Apr 07 2020 at 11:14)</a>:</h4>
<p>ugh I can't change <code>libstd</code> at all without hitting this</p>



<a name="193170725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193170725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193170725">(Apr 07 2020 at 11:14)</a>:</h4>
<p>/me is playing with moving <code>str</code> into the library</p>



<a name="193173905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193173905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193173905">(Apr 07 2020 at 11:43)</a>:</h4>
<blockquote>
<p>= note: <code>-D unused-attributes</code> implied by <code>-D warnings</code></p>
</blockquote>



<a name="193173980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193173980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193173980">(Apr 07 2020 at 11:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> <span class="user-mention" data-user-id="116122">@simulacrum</span> <code>#![cfg_attr(bootstrap, warn(unused_attributes))]</code> still causes warnings to turn into errors :(</p>



<a name="193173994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193173994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193173994">(Apr 07 2020 at 11:44)</a>:</h4>
<p>because of what "warn" means there</p>



<a name="193174013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174013">(Apr 07 2020 at 11:44)</a>:</h4>
<p>it's "error" with  "deny warnings"</p>



<a name="193174034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174034">(Apr 07 2020 at 11:44)</a>:</h4>
<p>maybe I can do it through the CLI?</p>



<a name="193174092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174092">(Apr 07 2020 at 11:45)</a>:</h4>
<p>If anything I'd expect us to allow them</p>



<a name="193174132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174132">(Apr 07 2020 at 11:46)</a>:</h4>
<p>You can edit rustbuild to do so, look in fn cargo in <a href="http://builder.rs" title="http://builder.rs">builder.rs</a></p>



<a name="193174215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174215">(Apr 07 2020 at 11:46)</a>:</h4>
<p>yeah testing that now</p>



<a name="193174398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174398">(Apr 07 2020 at 11:48)</a>:</h4>
<p><code>-Wunused-attributes</code> doesn't work either <em>sigh</em></p>



<a name="193174653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174653">(Apr 07 2020 at 11:51)</a>:</h4>
<p>All warnings are promoted to errors when <code>-Dwarnings</code> is used, even when you explicitly said <code>-Wunused-attributes</code>. Only <code>-Aunused-attributes</code> will work. <code>-Dwarnings</code> is enabled by default when <code>deny-warnings</code> is set to true in <code>config.toml</code>.</p>



<a name="193174668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174668">(Apr 07 2020 at 11:51)</a>:</h4>
<p>yeaaaaaah</p>



<a name="193174685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174685">(Apr 07 2020 at 11:51)</a>:</h4>
<p>found that out the "hard" way</p>



<a name="193174790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174790">(Apr 07 2020 at 11:52)</a>:</h4>
<p>Maybe add a <code>--cap-lint=unused-attributes=warn</code> to rustc to cap only specific lints?</p>



<a name="193174807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174807">(Apr 07 2020 at 11:52)</a>:</h4>
<p>OH OH</p>



<a name="193174811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174811">(Apr 07 2020 at 11:52)</a>:</h4>
<p>I forgot about cap-lint</p>



<a name="193174932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193174932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193174932">(Apr 07 2020 at 11:53)</a>:</h4>
<p>Rustc only has <code>--cap-lints</code> to cap all lints. I was proposing to add a <code>--cap-lint</code> to only cap a single lint.</p>



<a name="193175097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193175097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193175097">(Apr 07 2020 at 11:55)</a>:</h4>
<p>oh...</p>



<a name="193176001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/x.py%20check%20fails%20incremental%20due%20to%20unused%20attr%20%2358633/near/193176001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/x.2Epy.20check.20fails.20incremental.20due.20to.20unused.20attr.20.2358633.html#193176001">(Apr 07 2020 at 12:01)</a>:</h4>
<p>opened <a href="https://github.com/rust-lang/rust/issues/70881" title="https://github.com/rust-lang/rust/issues/70881">#70881</a> FWIW</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>